Computer systems generally include one or more processors interfaced to a temporary data storage device such as a memory device, and/or one or more persistent data storage devices such as disk drives. Contention for frequently accessed shared storage data can be a bottleneck to system performance. If one area of a disk is frequently accessed this can lead to slow access times as numerous requests are made for data in that area of the storage device. The performance demand for these data areas can also create a hotspot on a disk device, bus, controller, or adaptor that slows access to other data areas sharing that particular data path.
Clusters are data areas on a disk. Each cluster can store a set amount of data. When data is stored it may require only part of a cluster, a single cluster or more than one cluster. One approach to ease congestion on a particular data path is to create multiple physical copies of the logical data clusters so as to provide multiple sources of data via multiple data paths. A disadvantage of this technique is the difficulty in determining which storage clusters are good candidates for application of duplication technology. A second disadvantage is the overhead and synchronization required to maintain multiple physical copies of data clusters. Overhead and synchronization is particularly a problem for data clusters that are frequently updated. A third disadvantage is that some applications rely on a committed amount of capacity being available from the storage subsystem.